library ieee;
use ieee.std_logic_1164.all;

entity tb_sap1 is
  port (resultado : out std_logic_vector(7 downto 0) := "00000000");
end tb_sap1;

architecture a_tb_sap1 of tb_sap1 is
   function to_string(sv: Std_Logic_Vector) return string is
    use Std.TextIO.all;
    variable bv: bit_vector(sv'range) := to_bitvector(sv);
    variable lp: line;
  begin
    write(lp, bv);
    return lp.all;
  end;

	component sap1
	   port(
   		resultado : out std_logic_vector(7 downto 0)
   	);
	end component;

	for sap1_0: sap1 use entity work.sap1;
   
  	signal erro : boolean := false; -- para parar a simulação
  	signal tb_resultado : std_logic_vector(7 downto 0);
  	
begin
   sap1_0: sap1 port map (tb_resultado);
   
  
   process
   begin
   	wait for 3000 ns;
   	if(tb_resultado /= "00000010") then -- verifica se leu endereco 3
    		erro <= true;
    	end if;

	  	report "Value of vec: " & to_string(tb_resultado);
	  	assert not erro report "### Simulação encerrada com sucesso!" severity failure;
	  	-- assert erro report "### ERRO!" severity failure;
   end process;
end a_tb_sap1;
